package ${(introspectedTable.tableConfiguration.properties.fileDirectoryMapper)?substring(((introspectedTable.tableConfiguration.properties.fileDirectoryMapper)?index_of("/src/main/java/")+15))?replace("/",".")};

import com.broker.framework.common.pojo.BaseQueryDTO;
import ${(introspectedTable.tableConfiguration.properties.fileDirectoryQueryDTO)?substring(((introspectedTable.tableConfiguration.properties.fileDirectoryQueryDTO)?index_of("/src/main/java/")+15))?replace("/",".")}.${className}QueryDTO;
import ${(introspectedTable.tableConfiguration.properties.fileDirectoryDO)?substring(((introspectedTable.tableConfiguration.properties.fileDirectoryDO)?index_of("/src/main/java/")+15))?replace("/",".")}.${className}DO;

import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.broker.framework.common.pojo.PageParam;
import com.broker.framework.common.pojo.PageResult;
import com.broker.framework.mybatis.core.mapper.BaseMapperX;
import com.broker.framework.mybatis.core.query.LambdaQueryWrapperX;
import org.apache.ibatis.annotations.Mapper;

import java.util.*;

/***
 * ---------------------------
 * @Description: 表备注：${introspectedTable.remarks!}<#--deal null-->
 * 针对表【${introspectedTable.tableConfiguration.schema!}.${introspectedTable.fullyQualifiedTable.introspectedTableName}】的Mapper
 * ---------------------------
* @author: ${introspectedTable.tableConfiguration.properties.auther!}
* @date: ${introspectedTable.tableConfiguration.properties.createTime!}
 * @version: v1.0
 * ---------------------------
 */
@Mapper
public interface ${className}Mapper extends BaseMapperX<${className}DO> {

    @Override
    default <QueryDTO extends BaseQueryDTO> Map<SFunction<${className}DO, ?>, Object> getAllSelectorMap(QueryDTO queryDTO) {
        //getAllSelectorMap start...
        //getAllSelectorMap end...
//        return ${className}DO.getAllSelectorMap(queryDTO);
    }

    /**
     * *---------------------------
     * @Description: get page by query dto.
     * **---------------------------
     * @param queryDTO the query dto
     * @param pageParam the page param
     * @return page by query dto
     * ***---------------------------
     * @author: ${introspectedTable.tableConfiguration.properties.auther!}
     * @date: ${introspectedTable.tableConfiguration.properties.createTime!}
     * @version: v1.0
     * ****---------------------------
     */
    default PageResult<${className}DO> getPageByQueryDTO(${className}QueryDTO queryDTO, PageParam pageParam) {
        return selectPageBySelector(pageParam, getAllSelectorMap(queryDTO), wrapperX -> {
            //wrapperX.orderByAsc(${className}DO::getAaa, ${className}DO::getBbb
        }, true);
    }

}